#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QTableWidgetItem>
#include <vector>
#include "matrixprocessor.h"

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_generateButton_clicked();
    void on_processButton_clicked();

private:
    // 类型定义
    using Matrix = std::vector<std::vector<int>>;

    // 成员对象
    Ui::MainWindow *ui;
    MatrixProcessor *processor;
    QVector<QVector<bool>> is;
    int calculateSurroundingSum(int row, int col) ;
    void updateCellTooltips();
    // 成员函数声明（必须添加这部分）
    bool validateInput();
    Matrix getCurrentMatrix() const;
    void resetAllCellsColor();
    void markSpecialCells(const QList<QPoint>& points);
};

#endif // MAINWINDOW_H
